package com.google.gwt.gfx.client.graphics.svg;

import com.google.gwt.gfx.client.graphics.Circle;
import com.google.gwt.gfx.client.graphics.Ellipse;
import com.google.gwt.gfx.client.graphics.Graphic;
import com.google.gwt.gfx.client.graphics.GraphicFactory;
import com.google.gwt.gfx.client.graphics.Group;
import com.google.gwt.gfx.client.graphics.Line;
import com.google.gwt.gfx.client.graphics.LineString;
import com.google.gwt.gfx.client.graphics.LinearRing;
import com.google.gwt.gfx.client.graphics.Path;
import com.google.gwt.gfx.client.graphics.Rectangle;
import com.google.gwt.gfx.client.style.DefaultStyle;
import com.google.gwt.gfx.client.style.FillStyle;
import com.google.gwt.gfx.client.style.StrokeStyle;
import com.google.gwt.user.client.Element;

public class SVGGraphicFactory implements GraphicFactory {

	@Override
	public Circle createCircle() {
		return new SVGCircle();
	}

	@Override
	public Ellipse createEllipse() {
		return new SVGEllipse();
	}

	@Override
	public FillStyle createFillOf(Graphic g) {
		return new SVGFillStyle(g);
	}

	@Override
	public Group createGroup() {
		return new SVGGraphicGroup();
	}

	@Override
	public Line createLine() {
		return new SVGLine();
	}

	@Override
	public LinearRing createLinearRing() {
		return new SVGLinearRing();
	}

	@Override
	public LineString createLineString() {
		return new SVGLineString();
	}

	@Override
	public Path createPath() {
		return new SVGPath();
	}

	@Override
	public Rectangle createRectangle() {
		return new Rectangle(SVG.createElement("rect"));
	}

	@Override
	public StrokeStyle createStrokeOf(Graphic g) {
		return new SVGStrokeStyle(g);
	}

	@Override
	public DefaultStyle createStyleOf(Graphic g) {
		return new SVGDefaultStyle(g);
	}

	@Override
	public void register(Element element) {

	}

}
